package org.springframework.beans.factory.support;

import org.springframework.beans.BeansException;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;

/**
 *读取bean定义信息(BeanDefinition)的接口
 */
public interface BeanDefinitionReader {
    /**
     * 读取资源的bean信息需要资源加载器
     * @return
     */
    ResourceLoader getResourceLoader();

    /**
     * 读取完资源的bean信息需要注册bean
     * @return
     */
    BeanDefinitionRegistry getRegistry();

    //多个重载的加载资源的bean信息 并且注册bean的方法 底层肯定调用上面两个方法实现
    void loadBeanDefinitions(Resource resource) throws BeansException;

    void loadBeanDefinitions(String location) throws BeansException;

    void loadBeanDefinitions(String[] locations) throws BeansException;
}
